package com.youdianda.service;

import com.youdianda.dto.PageQueryDTO;
import com.youdianda.dto.YddLinkPageDTO;
import com.youdianda.dto.YddUserFavoriteLikesArticleDTO;
import com.youdianda.dto.YddArticlePageDTO;
import com.youdianda.entity.YddArticle;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youdianda.entity.YddUser;
import com.youdianda.result.PageResult;
import com.youdianda.result.Result;

import org.springframework.web.bind.annotation.GetMapping;


/**
* @author xliu
* @description 针对表【ydd_article】的数据库操作Service
* @createDate 2023-05-14 16:01:34
*/
public interface YddArticleService extends IService<YddArticle> {

    /**
     * 我的文章
     * @param dto
     * @return
     */
    Result<PageResult> myArticle(PageQueryDTO dto);

    /**
     * 我的收藏/点赞文章
     * @param dto
     * @return
     */
    Result userDataList(YddLinkPageDTO dto);

    /**
     * 修改文章
     * @param yddArticle
     * @return
     */
    Result editArticle(YddArticle yddArticle);

    /**
     * 修改用户资料
     * @param yddUser
     * @return
     */
    Result updateUserInfo(YddUser yddUser);

    /**
     * 点赞/取消点赞和收藏/取消收藏
     * @param dto
     * @return
     */
    Result userDataHandle(YddUserFavoriteLikesArticleDTO dto);


    /**
     * 分页查询文章
     * @param dto
     * @return
     */
    public Result page(YddArticlePageDTO dto);

    /**
     * 文章删除
     * @param id
     * @return
     */
    public Result del(String id);


    /**
     * 文章添加
     * @param yddArticle
     * @return
     */
    public Result addArticle(YddArticle yddArticle);

    /**
     * 文章详情
     * @param id
     * @return
     */
    public Result rowInfo(String id);

    /**
     * 请求参数
     * @param yddArticle
     * @return
     */
    public Result update(YddArticle yddArticle);

    /**
     * 热门置顶文章数据(首页)
     * @param dto
     * @return
     */
    public Result indexNew(PageQueryDTO dto);
    /**
     * 文章列表数据
     * @param dto
     * @return
     */
    public Result list(YddArticlePageDTO dto);

    /**
     * 注册
     * @param yddUser
     * @return
     */
    public Result reg(YddUser yddUser);

    /**
     * 最新文章
     * @return
     */
    @GetMapping("/hot")
    public Result hot();

    /**
     * 推荐文章
     * @return
     */
    public Result recommend();

    /**
     * 首页和全局数据
     * @return
     */
    public Result index();
    /**
     * 文章详情数据
     * @param id
     * @return
     */
    public Result show(String id);

}
